GtkColorChooserWidget: Redraw swatches when selection changes
authorMarcus Karlsson <mk@acc.umu.se>
Sat, 12 Apr 2014 08:09:46 +0000 (10:09 +0200)
committerMatthias Clasen <mclasen@redhat.com>
Mon, 14 Apr 2014 05:10:35 +0000 (22:10 -0700)
When selecting a swatch in a GtkColorChooserWidget the previously
selected swatch and the currently selected swatch are not redrawn. This
can leave the old swatch still marked with a checkbox even though a new
swatch has been selected.

Redraw the swatches after changing the selection.

https://bugzilla.gnome.org/show_bug.cgi?id=727487

gtk/gtkcolorchooserwidget.c

index e31c620e5a402b27b8c12a986ba0d64abc6e5d95..a8fb9cf93488643f2426fa08b5bc165f7a391a5e 100644 (file)
@@ -101,9 +101,14 @@ select_swatch (GtkColorChooserWidget *cc,
     return;
 
   if (cc->priv->current != NULL)
-    gtk_widget_unset_state_flags (GTK_WIDGET (cc->priv->current), GTK_STATE_FLAG_SELECTED);
+    {
+      gtk_widget_unset_state_flags (GTK_WIDGET (cc->priv->current), GTK_STATE_FLAG_SELECTED);
+      gtk_widget_queue_draw (GTK_WIDGET (cc->priv->current));
+    }
+
   gtk_widget_set_state_flags (GTK_WIDGET (swatch), GTK_STATE_FLAG_SELECTED, FALSE);
   cc->priv->current = swatch;
+  gtk_widget_queue_draw (GTK_WIDGET (cc->priv->current));
 
   gtk_color_swatch_get_rgba (swatch, &color);
   g_settings_set (cc->priv->settings, "selected-color", "(bdddd)",